#-- coding: utf-8 -*-
import t_net_handler, t_cmd
import t_room_logic
import iapi
t_API = None
GAMEID = -1
GAME_MODE = None
UID = None
GAME_ID = None
#游戏的入口函数
def start_from_init(cgame_id, game_mode, uid):
	#初始化API的版本
	global t_API
	if t_API is None:
		t_API = iapi.API_1_0()
	#初始化游戏逻辑和ui，并显示准备界面
	global UID,GAME_ID,GAME_MODE
	GAME_MODE = game_mode
	UID = uid
	GAME_ID = cgame_id
	start_game(game_mode, uid)

	t_room_logic.init(GAME_MODE)
	#注册关键回调函数
	t_API.register_callback(
		cgame_id,
		t_room_logic.inst.logic_frame, t_room_logic.inst.render_frame, None,
		t_room_logic.inst.on_key_down, t_room_logic.inst.on_mouse_msg, None, None, None
	)

	#初始化网络消息映射表
	t_net_handler.init()
	#注册网络消息定义和回调函数
	t_API.register_game_room_msgdefine_and_callback(t_cmd.cmd_msg, t_net_handler.MSG_MAP)


	#直接开始游戏
	#t_room_logic.inst.on_button_ready()
	# 进入游戏空间
	#import t_ui
	#t_ui.inst.showbegin()
	t_API.chat_set_focus(False)
	t_API.chat_hide(True)

	t_API.set_network_log_open(False)


#初始化游戏内的对象实例和ui实例
def start_game(iMode, uid):
	#初始化游戏音乐音效
	import t_sound
	t_sound.init()
	#初始化房间主逻辑
	t_room_logic.init(iMode)
	t_room_logic.inst.init_myself(uid)
	#初始化游戏UI类
	import t_ui
	t_ui.init()
	#初始化游戏主逻辑
	import t_mapmgr
	t_mapmgr.init()
	#初始化游戏发送消息逻辑
	import t_command
	t_command.init()
	#初始化游戏成就
	#import t_achieve
	#t_achieve.init()

#释放游戏内对象
def back_to_hall():
	#销毁游戏准备界面逻辑和ui
	t_room_logic.destroy()
	#销毁游戏主逻辑
	import t_mapmgr
	t_mapmgr.destroy()
	# 游戏UI
	import t_ui
	t_ui.destroy()
	# 声音
	import t_sound
	t_sound.destroy()
	global t_API
	t_API = None

